package com.lucky.carcodepro.common.annotation;


import java.lang.annotation.*;
import java.util.concurrent.TimeUnit;

/**
 * DistributedLock
 * <p>
 * 描述：基于 Redisson 实现的分布式锁
 *
 * @author Annie
 * @version 2024/10/6 23:50
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface DistributedLock
{
    // 锁的名称，支持动态生成
    String lockName() default "";

    // 获取锁的等待时间，默认30秒
    long waitTime() default 30L;

    // 锁的持有时间，默认-1使用Redisson看门狗机制
    long leaseTime() default -1L;

    // 时间单位， 默认是秒
    TimeUnit unit() default TimeUnit.SECONDS;

    // 是否使用公平锁
    boolean fairLock() default false;
}
